package com.pipa.catalogo.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.pipa.catalogo.entity.Departamento;
import com.pipa.catalogo.entity.Distrito;
import com.pipa.catalogo.entity.Provincia;
import com.pipa.catalogo.entity.TipoDocumento;
import com.pipa.util.MySQLConexion;

public class CatalogoDAO {

	public List<TipoDocumento> getTipoDocumentos() throws SQLException{
		PreparedStatement pstm = MySQLConexion.getConexion().prepareStatement(""
				+ "select tbespe,desesp from ttabd where tbiden='TIPDOC'");
		ResultSet rs = pstm.executeQuery();
		List<TipoDocumento> listado = new ArrayList<TipoDocumento>();
		while(rs.next()){
			TipoDocumento td = new TipoDocumento();
			td.setCodigo(rs.getString("tbespe"));
			td.setDescripcion(rs.getString("desesp"));
			listado.add(td);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Departamento> getDepartamentos() throws SQLException{
		PreparedStatement pstm = MySQLConexion.getConexion().prepareStatement(""
				+ "select tbespe,desesp from ttabd where tbiden='UBGCOD' and substring(tbespe,3,4)='0000'");
		ResultSet rs = pstm.executeQuery();
		List<Departamento> listado = new ArrayList<Departamento>();
		while(rs.next()){
			Departamento td = new Departamento();
			td.setCodigo(rs.getString("tbespe"));
			td.setDescripcion(rs.getString("desesp"));
			listado.add(td);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Provincia> getProvincia(String departamento) throws SQLException{
		PreparedStatement pstm = MySQLConexion.getConexion().prepareStatement(""
				+ "select tbespe,desesp from ttabd where tbiden='UBGCOD' and substring(tbespe,1,2)=? and substring(tbespe,3,2)<>'00' and substring(tbespe,5,2)='00' ");
		pstm.setString(1, departamento);
		ResultSet rs = pstm.executeQuery();
		List<Provincia> listado = new ArrayList<Provincia>();
		while(rs.next()){
			Provincia td = new Provincia();
			td.setCodigo(rs.getString("tbespe"));
			td.setDescripcion(rs.getString("desesp"));
			listado.add(td);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Distrito> getDistrito(String provincia) throws SQLException{
		PreparedStatement pstm = MySQLConexion.getConexion().prepareStatement(""
				+ "select tbespe,desesp from ttabd where tbiden='UBGCOD' and substring(tbespe,1,4)=? and substring(tbespe,5,2)<>'00'");
		pstm.setString(1, provincia);
		ResultSet rs = pstm.executeQuery();
		List<Distrito> listado = new ArrayList<Distrito>();
		while(rs.next()){
			Distrito td = new Distrito();
			td.setCodigo(rs.getString("tbespe"));
			td.setDescripcion(rs.getString("desesp"));
			listado.add(td);
		}
		rs.close();
		pstm.close();
		return listado;
	}
}
